package service.user;

import dao.user.DaoFactory;
import dao.user.UserDao;
import dao.user.UserDaoImpl;
import domain.user.User;

/**
 * 文件描述
 * user的业务层
 *
 * @author 冯根源
 * @date 2020/3/18 18:30
 */
public class UserService {
    //把具体的实现类的创建隐藏到工厂中
    private UserDao userDao = DaoFactory.getUserDao();

    /**
     * 注册功能
     * @param user
     * @throws UserException
     */
    public void register(User user)throws UserException{
        /**
         * 1.使用用户名去查询，如果返回null，完成添加
         * 2.如果不是返回null，抛出异常
         */
        User _user = userDao.FindByUserName(user.getUsername());
        if (_user!=null){
            throw new UserException("用户名"+user.getUsername()+"已经存在");
        }
        userDao.add(user);
    }

    /**
     * 登录功能
     * @param userForm
     * @return
     */
    public User login(User userForm) throws UserException {
        //使用form中的username进行查询，得到User
        User user = userDao.FindByUserName(userForm.getUsername());
        if (user==null){
            throw new UserException("用户名不存在");
        }

        System.out.println(        user.getPassword());
        //比较user的password和form的是否一致
        if (!userForm.getPassword().equals(user.getPassword())){
            throw new UserException("密码错误");
        }
        return user;
    }

}
